import os

'''tortoise-orm数据库配置'''
DEBUG = os.environ.get('DEBUG', True)

TORTOISE_ORM = {
    'connections': {
        'default': {
            'engine': 'tortoise.backends.mysql',
            # 连接参数
            'credentials': {
                # 数据库IP/域名地址
                'host': os.environ.get('DB_HOST', '127.0.0.1'),
                # 端口
                'port': os.environ.get('DB_PORT', 3306),
                # 连接账户
                'user': os.environ.get('DB_USER', 'root'),
                # 连接密码
                'password': os.environ.get('DB_PASSWORD', '123456'),
                # 数据库
                'database': os.environ.get('DB_DATABASE', 'fastchat'),
                # 编码
                'charset': os.environ.get('DB_CHARSET', 'utf8mb4'),
                # 连接池中的最小连接数
                'minsize': int(os.environ.get('DB_MINSIZE', 1)),
                # 连接池中的最大链接数
                'maxsize': int(os.environ.get('DB_MAXSIZE', 5)),
                # 执行数据库操作时，是否打印SQL语句
                'echo': bool(os.environ.get('DB_ECHO', True))
            }
        }

    },
    # 默认所在的应用目录
    'apps': {
        # 数据模型的分组名
        'models': {
            # 模型所在目录文件的导包路径【字符串格式】
            'models': ['application.apps.users.models', 'aerich.models'],
            # 上一行配置中的模型列表的默认连接配置
            'default_connection': 'default',
        }
    },

    # 时区设置
    'use_tz': False,
    'timezone': os.environ.get('DB_TIMEZONE', 'Asia/Shanghai'),

}


SMS = {
    'length': 5,
}

WECHAT = {
    'app_id': os.environ.get('WE_APPID'),
    'app_secret': os.environ.get('WS_APP_SECRET')
}

REDIS = {
    'host': os.environ.get('RD_HOST', '127.0.0.1'),  # 数据库地址
    'port': os.environ.get('RD_PORT', 6379),        # 数据库端口
    'db': os.environ.get('RD_DB', 0),               # 数据库名
    'username':  os.environ.get('RD_USERNAME', ''),  # 用户名
    'password':  os.environ.get('RD_PASSWORD', ''),  # 密码
}

ALIYUN = {
    'key': os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    'secret': os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    'sms': {
        'sign_name': os.environ.get('ALIBABA_CLOUD_VERIFY_SMS_SIGN_NAME', '阿里云短信测试'),
        'template_code': os.environ.get('ALIBABA_CLOUD_VERIFY_TEMPLATE_CODE', 'SMS_154950909'),
        'expire_time': os.environ.get('ALIBABA_CLOUD_VERIFY_SMS_EXPIRE_TIME', 10 * 60)
    }
}

JWT = {
    # 秘钥[盐值]
    'secret_key': os.environ.get('APP_SECRET', 'pTE^k1hKUgUXfv-XbGj$Y7UodOtLtmI7^bKlA@e2LjT0Jo=TdJjQTxrQB/1H1^jk'),
    # 设定JWT令牌签名算法
    'algorithm': "HS256",
    # 设置令牌过期时间变量（单位：秒）
    'expire_time': 30 * 60
}

AI_ROBOT = {
    # 是否开启api次数限流，0表示关闭，1表示开启
    'limit': os.environ.get('AI_API_LIMIT', 1),
    # 允许用户每天免费使用的次数
    'count': os.environ.get('AI_API_COUNT', 5),
}